﻿


var index = 1;
var size = 10;


var checkAll;
var checkpll;
var Show;
var Fenye;
var close;
var idsArray = [];
var tidsArray = [];
layui.use(function () {
    var $ = layui.$;
    var layer = layui.layer;
    var util = layui.util;
    var form = layui.form;


    // 定义获取选中复选框值的函数
    function getCheckedCheckboxValues() {
        var checkedCheckboxValues = [];
        $("input[name='ckbproc']:checked").each(function () {
            checkedCheckboxValues.push($(this).val());
        });
        return checkedCheckboxValues;
    }


    // 事件
    util.on('lay-on', {
        'test-page-custom': function () {
            layer.open({
                type: 1,
                area: ['950px', '600px'],
                resize: false,
                shadeClose: true,
                title: '选择产品',
                content: `
                            <form class="layui-form" action="">
                         <div class="layui-form-item">
                             <div class="layui-inline">
                                 <label class="layui-form-label">产品编号:</label>
                                 <div class="layui-input-block">
                                     <input type="text" id="productNo" name="productNo" placeholder="请输入" autocomplete="off" class="layui-input">
                                 </div>
                             </div>
                             <div class="layui-inline">
                                 <label class="layui-form-label">产品名称:</label>
                                 <div class="layui-input-block">
                                     <input type="text" id="productName" name="productName" placeholder="请输入" autocomplete="off" class="layui-input">
                                 </div>
                             </div>
                             <div class="layui-inline">
                                 <div class="layui-btn-container">
                                     <button type="button" class="layui-btn layui-bg-blue" onclick="Fenye()">
                                         <i class="layui-icon layui-icon-search"></i>搜索
                                     </button>
                                 </div>
                             </div>
                         </div>
                     </form>
                     <div>
                     <table class="layui-table">
                        <tr>
                            <th>
                                <input type="checkbox" id="checkAll" onclick="checkAll()"       value="" />
                           </th>
                            <th>产品编号</th>
                            <th>产品名称</th>
                            <th>规格</th>
                            <th>类别</th>
                            <th>存储单位</th>
                            <th>包装类型</th>
                            <th>价格</th>
                            <th>重量</th>
                            <th>显示名</th>
                        </tr>
                        <tbody id="data"></tbody>
                        
                    </table>
                     </div>
                     <div id="demo-laypage-layout"></div>
                     <div style="text-align:right;margin-top:30px">
                     <button type="button" class="layui-btn layui-btn-primary layui-btn-sm" id="closePopupBtn" onclick="close()">
                                         关闭
                                     </button>
                     <button type="button" class="layui-btn layui-bg-blue layui-btn-sm" >
                                         选择
                                     </button>
                     </div>`,
                success: function () {
                    // 对弹层中的表单进行初始化渲染
                    form.render();
                    // 表单提交事件
                    form.on('submit(demo-login)', function (data) {
                        var field = data.field; // 获取表单字段值
                        return false; // 阻止默认 form 跳转
                    });

                    //获取复选框值
                    var chooseButton = $(".layui-btn.layui-bg-blue:last");
                    chooseButton.on('click', function () {
                        var checkedValues = getCheckedCheckboxValues();
                        if (checkedValues.length > 0) {
                            idsArray = checkedValues
                            console.log("选中的复选框值:", checkedValues, idsArray);
                            layer.close(index);
                            //显示
                            layui.use('table', function () {
                                var form = layui.form;
                                var table = layui.table;
                                $.ajax({
                                    url: '../Product/GetProductRangeModel',
                                    type: 'post',
                                    data: {
                                        productId: JSON.stringify(idsArray),
                                        token: localStorage.getItem("token")
                                    },
                                    success: function (res) {
                                        var res = JSON.parse(res)
                                        console.log(res.data)
                                        console.log(idsArray)
                                        // res 是从后端获取到的 JSON 数据
                                        if (res.code === 0) {
                                            console.log(res.data);
                                            table.render({
                                                elem: allReportProduct, // 对应 HTML 中表格的 id
                                                data: res.data, // 绑定获取到的数据
                                                //page: true,
                                                //limit: 5,
                                                //limits: [5, 8, 10],
                                                cols: [[
                                                    { type: 'checkbox', fixed: 'left' },
                                                    { field: 'productName', title: '产品名称' },
                                                    { field: 'productNo', title: '产品编号' },
                                                    { field: 'productSpec', title: '规格' },
                                                    {
                                                        field: 'productBatch', title: '批次',
                                                        templet: function () {
                                                            return '20241119';
                                                        }
                                                    },
                                                    { field: 'productPrice', title: '单价' },
                                                    { field: 'reportNum', title: '数量', edit: 'text' },
                                                    {
                                                        field: 'binLocationName', title: '当前库位',
                                                        templet: function () {
                                                            return '仓库2：默认正式库位';
                                                        }
                                                    },
                                                    {
                                                        field: '', title: '操作', width: 200, templet: function (d) {
                                                            return '<a class="layui-btn layui-btn-edit layui-btn-xs" lay-on="test-page-delete"><i class="layui-icon layui-icon-edit"></i>删除</a> ';
                                                        }
                                                    }
                                                ]],
                                                done: function (res, curr, count) {
                                                    var options = this;

                                                    // 获取当前行数据 - 自定义方法
                                                    table.getRowData = function (tableId, elem) {
                                                        var index = $(elem).closest('tr').data('index');
                                                        return table.cache[tableId][index] || {};
                                                    };
                                                    // 展示数据 - 仅用于演示
                                                    var showData = function (data) {
                                                        return layer.msg('当前行最新数据：<br>' + util.escape(JSON.stringify(data)), {
                                                            offset: '16px',
                                                            anim: 'slideDown'
                                                        });
                                                    };
                                                }//===========

                                            })
                                        } else {
                                            console.log(res.msg);
                                        }
                                        // layui form select 事件
                                        form.on('select(select-demo)', function (obj) {
                                            var value = obj.value; // 获取选中项 value
                                            console.log(value)
                                            // 获取当前行数据(如 id 等字段，以作为数据修改的索引)
                                            var data = table.getRowData(options.id, obj.elem);
                                            // 更新数据中对应的字段
                                            data.binLocationName = value;
                                            // 显示当前行最新数据 - 仅用于示例展示
                                            showData(data);
                                        })//==========   
                                    },
                                    error: function () {
                                        console.log('获取数据失败');
                                    }
                                });
                            });

                            console.log("选中的复选框值:", checkedValues, idsArray);
                        } else {
                            layer.msg("请至少选择一项");
                        }

                    });

                    //关闭弹窗
                    close = function () {
                        layer.close(index);
                    }
                }

            });

            //// 监听单元格编辑事件
            //table.on('edit(test)', function (obj) {
            //    var value = obj.value; // 修改后的值
            //    var field = obj.field; // 字段名
            //    var data = obj.data; // 所在行数据

            //    // 如果是单价或数量字段被编辑，则计算总价
            //    if (field === 'price' || field === 'storageNum') {
            //        var price = parseFloat(data.price) || 0;
            //        var storageNum = parseFloat(data.storageNum) || 0;
            //        var totalPrice = price * storageNum;
            //        data.totalPrice = totalPrice.toFixed(2);
            //        table.reload('allocationProduct', { data: table.cache.allocationProduct });
            //        form.render();
            //    }
            //});
            var index = 1;
            var size = 6;
            var tacount = 0;
            $(function () {
                Fenye();
            });
            //弹窗显示
            Show = function () {
                var productNo = $("#productNo").val();
                var productName = $("#productName").val();
                var manuNo = $("#manuNo").val();
                var vendorId = $("#vendorId").val();
                $.ajax({
                    url: '../Product/GEtProductShow',
                    async: false,//改为异步,
                    type: 'get',
                    data: {
                        productNo: productNo,
                        productName: productName,
                        manuNo: manuNo,
                        vendorId: vendorId,
                        index: index,
                        size, size,
                        token: localStorage.getItem("token")
                    },
                    success: function (res) {
                        var list = '';
                        var parsedData = JSON.parse(res);
                        console.log(parsedData)
                        $(parsedData.data.list).each(function () {
                            list += `
                         <tr>
                        <td>
                                <input type="checkbox" name="ckbproc" value="${this.productId}" />
                            </td>
                         <td>${this.productNo}</td>
                          <td>${this.productName}</td>
                          <td>${this.productSpec}</td>
                          <td>${this.productTypeName}</td>
                          <td>${this.unitName}</td>
                          <td>${this.productWrap}</td>

                          <td>${this.price}</td>
                          <td>${this.productWeight}</td>
                                  <td>
                                     
                                    </td>
                     </tr> `
                        });
                        $("#data").html(list);
                        tacount = parsedData.data.tacount;
                    }
                })
            }

            //分页
            Fenye = function () {

                layui.use(function () {
                    var laypage = layui.laypage;
                    // 完整显示
                    Show()
                    laypage.render({
                        elem: 'demo-laypage-layout', // 元素 id
                        count: tacount, // 数据总数
                        limit: size,//2.设置默认分页大小
                        limits: [6, 10, 15],//3.设置分页组件可选的分页大小
                        layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip'], // 功能布局
                        jump: function (obj) {
                            console.log(obj);
                            index = obj.curr;
                            size = obj.limit;
                            Show();
                        }
                    });
                });
            }

            checkpll = function () {
                var checkedIds = $("input[name='ckbproc']:checked");//取所有选中的name=ckbproc的复选框集合
                var ids = [];//定义了一个数组,空的
                $(checkedIds).each(function (i, obj) {
                    var id = $(obj).val();
                    ids.push(id);//往数组里push数字,数字就是我们的商品id
                });

                console.log(ids)
            }
            checkAll = function () {

                var checked = $("#checkAll").prop("checked");  //取全选/反选 checkbox的选中状态值
                $("input[name='ckbproc']").prop("checked", checked);//把所有name=ckbproc的checkbox的选中状态赋值为 checked
                console.log(checked)
            }
        }
    })

});

$(function () {
    getdata()
    editDataFinds()
})

function getdata() {
    var n = new Date();
    var ss = n.getFullYear() + (n.getMonth() + 1).toString().padStart(2, '0') +
        n.getDate().toString().padStart(2, '0') +
        n.getHours().toString().padStart(2, '0') +
        n.getMinutes().toString().padStart(2, '0') +
        n.getSeconds().toString().padStart(2, '0');
    $("#reportlossesNos").val(ss);


}



function editDataFinds() {
    return new Promise((resolve, reject) => {
      const reportlossesId = localStorage.getItem("reportlossesId");
        console.log(reportlossesId)
        if (reportlossesId) {
            // 发送AJAX请求获取数据
            $.ajax({
                type: 'get',
                url: '../Reportlosses/ReportlossesDetails',
                data: {
                    reportlossesId: reportlossesId,
                    token: localStorage.getItem("token")
                },
                success: function (res) {
                    console.log(res)
                    const { data } = JSON.parse(res);
                    if (data) {
                        const { reportLists } = data;
                        var storage = data;
                        console.log(storage);
                        console.log(reportLists);
                        // 反填表单的函数
                        fillForm(storage)
                        // 渲染表格的函数
                        renderTable(reportLists)
                        resolve(storage, reportLists)
                    }
                    else {
                        layui.layer.msg(res.message, { icon: 2 });
                        reject(res.message);
                    }

                },
                error: () => {
                    layui.layer.msg('获取用户信息失败，请稍后重试', { icon: 2 });
                    reject('获取用户信息失败');
                }
            })
        } else {
            reject('未获取到有效的仓库ID');
        }
          
    })
}



var obj = {
    reportlossesId:'',
    examineReason :'',
    examinePeople:'',
    examineTime:'',
    documentState: '',
    officeId: '',
    userid: '',
    createName: '',
    createTime: '',
    updateName: '',
    deleteName: '',
    deleteTime: '',
    wlocator: '',
    wRepolocator:''
}

function fillForm(storage) {
    $("#reportlossesNo").val(storage.reportlossesNo);
    $("#reportlossesType").val(storage.reportlossesType);
    $("#associateNumber").val(storage.associateNumber);
    $("#singleMakers").val(storage.singleMaker);
    const date = new Date(storage.makeTime);
    const year = date.getFullYear();
    const month = ("0" + (date.getMonth() + 1)).slice(-2);
    const day = ("0" + date.getDate()).slice(-2);
    $('#makeTime').val(year + "-" + month + "-" + day);
    $("#moveRemark").val(storage.moveRemark);
    $("#wRepolocator").val(storage.wRepolocator);

    obj.reportlossesId = storage.reportlossesId
    obj.examineReason = storage.examineReason
    obj.examinePeople = storage.examinePeople
    obj.examineTime = storage.examineTime
    obj.documentState = storage.documentState
    obj.officeId = storage.officeId
    obj.userid = storage.userid
    obj.createName = storage.createName
    obj.createTime = storage.createTime
    obj.updateName = storage.updateName
    obj.deleteName = storage.deleteName
    obj.deleteTime = storage.deleteTime
    obj.wlocator = storage.wlocator
    obj.wRepolocator=storage.wRepolocator
    console.log(obj)

}



// 渲染表格的函数
function renderTable(reportLists) {
    console.log(reportLists[0].reportlossesId)
    var reportlossesId = reportLists[0].reportlossesId
    layui.use('table', function () {
        var table = layui.table;
        //查询
        $.ajax({
            url: '/Reportlosses/ReportlossesDetails',
            type: 'get',
            data: {
                reportlossesId: reportlossesId,
                token: localStorage.getItem("token")
            },
            success: function (res) {
                var obj = JSON.parse(res);
                if (obj.code == 0) {
                    var inst = table.render({
                        elem: "#allReportProduct",
                        data: reportLists,
                        cols: [[
                            { type: 'checkbox', fixed: 'left' },
                            { field: 'productNo', title: '产品编号' },
                            { field: 'productName', title: '产品名称' },
                            { field: 'productSpec', title: '规格' },
                            { field: 'batch', title: '批次'},
                            { field: 'price', title: '单价' },
                            { field: 'reportNum', title: '数量', edit: 'text' },
                            { field: 'binLocationName', title: '当前库位' }
                        ]]
                    })
                } else {
                    console.log(res.msg);
                }
            }, error: function () {
                console.log("获取数据失败");
                // 可以考虑显示一个错误消息给用户
            }
        })
    })
}

// 定义时间格式转换函数
function formatTime(timeStamp) {
    if (timeStamp) {
        var date = new Date(timeStamp);
        var year = date.getFullYear();
        var month = ('0' + (date.getMonth() + 1)).slice(-2);
        var day = ('0' + date.getDate()).slice(-2);
        var hour = ('0' + date.getHours()).slice(-2);
        var minute = ('0' + date.getMinutes()).slice(-2);
        var second = ('0' + date.getSeconds()).slice(-2);
        return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
    }
    return "";
}



var obj1 = {
    reportlossesId: '',
    reportlossesNo: '',
    reportlossesType: "",
    associateNumber:'',
    singleMaker: '',
    makeTime: '',
    moveRemark: '',
    documentState:'',
    examineReason: '',
    examinePeople: '',
    examineTime: '',
    officeId: "",
    userid: "",
    createName: '',
    createTime: '',
    updateName: '',
    deleteName: '',
    deleteTime: '',
    wRepolocator: '',
    wlocator:'',
    reportProducts: []
}
layui.use(['layer', 'form', 'util', 'table'], function () {
    var layer = layui.layer;
    var $ = layui.jquery;
    var form = layui.form;
    var util = layui.util;
    var table = layui.table;
    form.on('submit(demo2)', function (data) {
        var field = data.field;
        var checkStatus = table.checkStatus('allReportProduct');
        field.reportProducts = checkStatus.data.map(function (item) {
            return item;
        })
        console.log(obj)
        console.log(field);//field.products
        obj1.reportlossesId = obj.reportlossesId
        obj1.reportlossesNo = field.reportlossesNo
        obj1.reportlossesType = field.reportlossesType
        obj1.associateNumber = field.associateNumber
        obj1.singleMaker = field.singleMakers
        obj1.makeTime = field.makeTime
        obj1.moveRemark = field.moveRemark
        obj1.documentState = obj.documentState
        obj1.examineReason = obj.examineReason
        obj1.examinePeople = obj.examinePeople
        obj1.examineTime = obj.examineTime
        obj1.createName = obj.createName
        obj1.createTime = obj.createTime
        obj1.updateName = obj.updateName
        obj1.deleteName = obj.deleteName
        obj1.deleteTime = obj.deleteTime
        obj1.officeId = obj.officeId
        obj1.userid = obj.userid  
        obj1.wlocator = obj.wlocator
        obj1.wRepolocator=obj.wRepolocator
        obj1.reportProducts = field.reportProducts

        $.ajax({
            url: '/Reportlosses/ReportlossesUpdate',
            type: 'post',
            data: { field:obj1, token: localStorage.getItem("token")},
            success: function (res) {
                var res = JSON.parse(res)
                console.log(obj1);
                console.log(res);
                if (res.code == 0) {
                    layer.alert("修改成功");
                    //跳转页面
                    location.href = '/Reportlosses/ShowReportlossesView'
                    return;
                } else {
                    layer.alert("修改失败");
                }
            }
        })
        return false; // 阻止默认 form 跳转
    });
});
